<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/numa.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/numa.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_X0FTTV9YODZfTlVNQV9IXzA_"><span class="b">_ASM_X86_NUMA_H</span></a>
<a name="2" /><span class="True">       2:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X0FTTV9YODZfTlVNQV9IXzA_"><span class="b">_ASM_X86_NUMA_H</span></a>
<a name="3" /><span class="True">       3:</span> 
<a name="4" /><span class="True">       4:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">nodemask</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="5" /><span class="True">       5:</span> 
<a name="6" /><span class="True">       6:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="m">asm</span><span class="f">/</span><span class="b">topology</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="7" /><span class="True">       7:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="m">asm</span><span class="f">/</span><span class="b">apicdef</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="8" /><span class="True">       8:</span> 
<a name="9" /><span class="True">       9:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX05VTUFfMA__"><span class="b">CONFIG_NUMA</span></a>
<a name="10" /><span class="True">      10:</span> 
<a name="11" /><span class="True">      11:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_TlJfTk9ERV9NRU1CTEtTXzA_"><span class="b">NR_NODE_MEMBLKS</span></a>        <span class="f">(</span><a href="cpu.c_macros_ref.html#_TUFYX05VTU5PREVTXzA_"><span class="b">MAX_NUMNODES</span></a><span class="f">*</span><span class="c">2</span><span class="f">)</span>
<a name="12" /><span class="True">      12:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Wk9ORV9BTElHTl8w"><span class="b">ZONE_ALIGN</span></a> <span class="f">(</span><span class="c">1UL</span> <span class="f">&lt;&lt;</span> <span class="f">(</span><a href="cpu.c_macros_ref.html#_TUFYX09SREVSXzA_"><span class="b">MAX_ORDER</span></a><span class="f">+</span><a href="cpu.c_macros_ref.html#_UEFHRV9TSElGVF8w"><span class="b">PAGE_SHIFT</span></a><span class="f">)</span><span class="f">)</span>
<a name="13" /><span class="True">      13:</span> 
<a name="14" /><span class="True">      14:</span> <span class="k">/*</span>
<a name="15" /><span class="True">      15:</span> <span class="k"> * Too small node sizes may confuse the VM badly. Usually they</span>
<a name="16" /><span class="True">      16:</span> <span class="k"> * result from BIOS bugs. So dont recognize nodes as standalone</span>
<a name="17" /><span class="True">      17:</span> <span class="k"> * NUMA entities that have less than this amount of RAM listed:</span>
<a name="18" /><span class="True">      18:</span> <span class="k"> */</span>
<a name="19" /><span class="True">      19:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Tk9ERV9NSU5fU0laRV8w"><span class="b">NODE_MIN_SIZE</span></a> <span class="f">(</span><span class="c">4</span><span class="f">*</span><span class="c">1024</span><span class="f">*</span><span class="c">1024</span><span class="f">)</span>
<a name="20" /><span class="True">      20:</span> 
<a name="21" /><span class="True">      21:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">numa_off</span><span class="f">;</span>
<a name="22" /><span class="True">      22:</span> 
<a name="23" /><span class="True">      23:</span> <span class="k">/*</span>
<a name="24" /><span class="True">      24:</span> <span class="k"> * __apicid_to_node[] stores the raw mapping between physical apicid and</span>
<a name="25" /><span class="True">      25:</span> <span class="k"> * node and is used to initialize cpu_to_node mapping.</span>
<a name="26" /><span class="True">      26:</span> <span class="k"> *</span>
<a name="27" /><span class="True">      27:</span> <span class="k"> * The mapping may be overridden by apic-&gt;numa_cpu_node() on 32bit and thus</span>
<a name="28" /><span class="True">      28:</span> <span class="k"> * should be accessed by the accessors - set_apicid_to_node() and</span>
<a name="29" /><span class="True">      29:</span> <span class="k"> * numa_cpu_node().</span>
<a name="30" /><span class="True">      30:</span> <span class="k"> */</span>
<a name="31" /><span class="True">      31:</span> <span class="m">extern</span> <span class="b">s16</span> <span class="b">__apicid_to_node</span><span class="f">[</span><a href="cpu.c_macros_ref.html#_TUFYX0xPQ0FMX0FQSUNfMA__"><span class="b">MAX_LOCAL_APIC</span></a><span class="f">]</span><span class="f">;</span>
<a name="32" /><span class="True">      32:</span> <span class="m">extern</span> <span class="b">nodemask_t</span> <span class="b">numa_nodes_parsed</span> <a href="cpu.c_macros_ref.html#_X19pbml0ZGF0YV8w"><span class="b">__initdata</span></a><span class="f">;</span>
<a name="33" /><span class="True">      33:</span> 
<a name="34" /><span class="True">      34:</span> <span class="m">extern</span> <span class="m">int</span> <a href="cpu.c_macros_ref.html#_X19pbml0XzA_"><span class="b">__init</span></a> <span class="b">numa_add_memblk</span><span class="f">(</span><span class="m">int</span> <span class="b">nodeid</span><span class="f">,</span> <span class="b">u64</span> <span class="b">start</span><span class="f">,</span> <span class="b">u64</span> <span class="b">end</span><span class="f">)</span><span class="f">;</span>
<a name="35" /><span class="True">      35:</span> <span class="m">extern</span> <span class="m">void</span> <a href="cpu.c_macros_ref.html#_X19pbml0XzA_"><span class="b">__init</span></a> <span class="b">numa_set_distance</span><span class="f">(</span><span class="m">int</span> <span class="b">from</span><span class="f">,</span> <span class="m">int</span> <span class="b">to</span><span class="f">,</span> <span class="m">int</span> <span class="b">distance</span><span class="f">)</span><span class="f">;</span>
<a name="36" /><span class="True">      36:</span> 
<a name="37" /><span class="True">      37:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">set_apicid_to_node</span><span class="f">(</span><span class="m">int</span> <span class="b">apicid</span><span class="f">,</span> <span class="b">s16</span> <span class="b">node</span><span class="f">)</span>
<a name="38" /><span class="True">      38:</span> <span class="f">{</span>
<a name="39" /><span class="True">      39:</span>     <span class="b">__apicid_to_node</span><span class="f">[</span><span class="b">apicid</span><span class="f">]</span> <span class="f">=</span> <span class="b">node</span><span class="f">;</span>
<a name="40" /><span class="True">      40:</span> <span class="f">}</span>
<a name="41" /><span class="True">      41:</span> 
<a name="42" /><span class="True">      42:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">numa_cpu_node</span><span class="f">(</span><span class="m">int</span> <span class="b">cpu</span><span class="f">)</span><span class="f">;</span>
<a name="43" /><span class="True">      43:</span> 
<a name="44" /><span class="False">      44:</span> <span class="f">#</span><span class="n">else</span>    <span class="k">/* CONFIG_NUMA */</span>
<a name="45" /><span class="False">      45:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">set_apicid_to_node</span><span class="f">(</span><span class="m">int</span> <span class="b">apicid</span><span class="f">,</span> <span class="b">s16</span> <span class="b">node</span><span class="f">)</span>
<a name="46" /><span class="False">      46:</span> <span class="f">{</span>
<a name="47" /><span class="False">      47:</span> <span class="f">}</span>
<a name="48" /><span class="False">      48:</span> 
<a name="49" /><span class="False">      49:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">int</span> <span class="b">numa_cpu_node</span><span class="f">(</span><span class="m">int</span> <span class="b">cpu</span><span class="f">)</span>
<a name="50" /><span class="False">      50:</span> <span class="f">{</span>
<a name="51" /><span class="False">      51:</span>     <span class="m">return</span> <a href="cpu.c_macros_noref.html#_TlVNQV9OT19OT0RFXzA_"><span class="b">NUMA_NO_NODE</span></a><span class="f">;</span>
<a name="52" /><span class="False">      52:</span> <span class="f">}</span>
<a name="53" /><span class="True">      53:</span> <span class="f">#</span><span class="n">endif</span>    <span class="k">/* CONFIG_NUMA */</span>
<a name="54" /><span class="True">      54:</span> 
<a name="55" /><span class="False">      55:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">CONFIG_X86_32</span>
<a name="56" /><span class="False">      56:</span> <span class="f">#</span> <span class="n">include</span> <span class="f">&lt;</span><span class="m">asm</span><span class="f">/</span><span class="b">numa_32</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="57" /><span class="True">      57:</span> <span class="f">#</span><span class="n">endif</span>
<a name="58" /><span class="True">      58:</span> 
<a name="59" /><span class="True">      59:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX05VTUFfMA__"><span class="b">CONFIG_NUMA</span></a>
<a name="60" /><span class="True">      60:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">numa_set_node</span><span class="f">(</span><span class="m">int</span> <span class="b">cpu</span><span class="f">,</span> <span class="m">int</span> <span class="b">node</span><span class="f">)</span><span class="f">;</span>
<a name="61" /><span class="True">      61:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">numa_clear_node</span><span class="f">(</span><span class="m">int</span> <span class="b">cpu</span><span class="f">)</span><span class="f">;</span>
<a name="62" /><span class="True">      62:</span> <span class="m">extern</span> <span class="m">void</span> <a href="cpu.c_macros_ref.html#_X19pbml0XzA_"><span class="b">__init</span></a> <span class="b">init_cpu_to_node</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="63" /><span class="True">      63:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">numa_add_cpu</span><span class="f">(</span><span class="m">int</span> <span class="b">cpu</span><span class="f">)</span><span class="f">;</span>
<a name="64" /><span class="True">      64:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">numa_remove_cpu</span><span class="f">(</span><span class="m">int</span> <span class="b">cpu</span><span class="f">)</span><span class="f">;</span>
<a name="65" /><span class="False">      65:</span> <span class="f">#</span><span class="n">else</span>    <span class="k">/* CONFIG_NUMA */</span>
<a name="66" /><span class="False">      66:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">numa_set_node</span><span class="f">(</span><span class="m">int</span> <span class="b">cpu</span><span class="f">,</span> <span class="m">int</span> <span class="b">node</span><span class="f">)</span>    <span class="f">{</span> <span class="f">}</span>
<a name="67" /><span class="False">      67:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">numa_clear_node</span><span class="f">(</span><span class="m">int</span> <span class="b">cpu</span><span class="f">)</span>        <span class="f">{</span> <span class="f">}</span>
<a name="68" /><span class="False">      68:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">init_cpu_to_node</span><span class="f">(</span><span class="m">void</span><span class="f">)</span>        <span class="f">{</span> <span class="f">}</span>
<a name="69" /><span class="False">      69:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">numa_add_cpu</span><span class="f">(</span><span class="m">int</span> <span class="b">cpu</span><span class="f">)</span>        <span class="f">{</span> <span class="f">}</span>
<a name="70" /><span class="False">      70:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">numa_remove_cpu</span><span class="f">(</span><span class="m">int</span> <span class="b">cpu</span><span class="f">)</span>        <span class="f">{</span> <span class="f">}</span>
<a name="71" /><span class="True">      71:</span> <span class="f">#</span><span class="n">endif</span>    <span class="k">/* CONFIG_NUMA */</span>
<a name="72" /><span class="True">      72:</span> 
<a name="73" /><span class="False">      73:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">CONFIG_DEBUG_PER_CPU_MAPS</span>
<a name="74" /><span class="False">      74:</span> <span class="m">void</span> <span class="b">debug_cpumask_set_cpu</span><span class="f">(</span><span class="m">int</span> <span class="b">cpu</span><span class="f">,</span> <span class="m">int</span> <span class="b">node</span><span class="f">,</span> <span class="m">bool</span> <span class="b">enable</span><span class="f">)</span><span class="f">;</span>
<a name="75" /><span class="True">      75:</span> <span class="f">#</span><span class="n">endif</span>
<a name="76" /><span class="True">      76:</span> 
<a name="77" /><span class="False">      77:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">CONFIG_NUMA_EMU</span>
<a name="78" /><span class="False">      78:</span> <span class="f">#</span><span class="n">define</span> <span class="b">FAKE_NODE_MIN_SIZE</span>    <span class="f">(</span><span class="f">(</span><span class="b">u64</span><span class="f">)</span><span class="c">32</span> <span class="f">&lt;&lt;</span> <span class="c">20</span><span class="f">)</span>
<a name="79" /><span class="False">      79:</span> <span class="f">#</span><span class="n">define</span> <span class="b">FAKE_NODE_MIN_HASH_MASK</span>    <span class="f">(</span><span class="f">~</span><span class="f">(</span><span class="b">FAKE_NODE_MIN_SIZE</span> <span class="f">-</span> <span class="c">1UL</span><span class="f">)</span><span class="f">)</span>
<a name="80" /><span class="False">      80:</span> <span class="m">void</span> <span class="b">numa_emu_cmdline</span><span class="f">(</span><span class="m">char</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="81" /><span class="True">      81:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* CONFIG_NUMA_EMU */</span>
<a name="82" /><span class="True">      82:</span> 
<a name="83" /><span class="True">      83:</span> <span class="f">#</span><span class="n">endif</span>    <span class="k">/* _ASM_X86_NUMA_H */</span>
<a name="84" /><span class="True">      84:</span> </pre>
  </body>
</html>
